In various computing systems a processor communicates with one or more peripheral modules over a bus. Methods for secure communication of information over a system bus are known in the art. For example, U.S. Patent Application Publication 2008/0155273, whose disclosure is incorporated herein by reference, describes a system, method, and logic for automatic hardware bus encryption/decryption. The logic receives a memory access request comprising a physical address of a memory location from a processor. The logic translates the physical address, and uses the translated physical address and a seed value in a pseudo random number generator to produce an output value. The logic then uses the output value to non-deterministically select an encryption key from a plurality of encryption keys.
U.S. Pat. No. 7,248,696, whose disclosure is incorporated herein by reference, describes data encryption for a differential bus employing transitional coding. The present invention maps, encodes and encrypts input data as a logic status for a given bus transfer cycle. The mapping, encoding and encrypting of the input data changes from bus transfer cycle to bus transfer cycle. The mapping, encoding and encrypting is a function of a pseudo-random number. A logic status is differentially transmitted from a bus transmitter to a bus receiver, to be mapped, decrypted and decoded as the corresponding output data.
U.S. Pat. No. 8,781,111, whose disclosure is incorporated herein by reference, describes software and hardware-based systems and methods for preventing side channel attacks. A side channel attack utilizes information gained from the physical implementation of a cryptosystem. Cryptographic hardware may introduce dummy operations to compensate for conditional math operations in certain functions such as modular exponentiation. Cryptographic hardware may also introduce random stalls of the data path to introduce alterations in the power profile for the operation. These alterations are designed to randomly change the timing and power profile of the requested function.